local jw_zhixing = fk.CreateSkill {
    name = "jw_zhixing",
}

Fk:loadTranslationTable {
    ["jw_zhixing"] = "执行",
    [":jw_zhixing"] = "出牌阶段限一次，你令一名角色成为“异教”，你对“异教”角色使用牌无距离限制，且对这些角色造成伤害后，令其获得一层<a href='jw_zhuoshao'>“灼烧”</a>。", --这里效果为，蓝色文字显示，点击查看详情

    ["#jw_zhixing"] = "执行：你可以令一名角色成为异教，并对其施加效果！", --此处为提示的翻译表

    ["jw_zhuoshao"] = "有该标记的角色，回合结束时失去标记等量的体力值",

    ["@@jw_yijiao"] = "异教",
    ["@jw_zhuoshao"] = "灼烧",
}

jw_zhixing:addEffect("active", {     --配置主动技active
    anim_type = "support",           --可以选择配置单个效果的发动特效
    prompt = "#jw_zhixing",          --prompt，技能发动时的提示，也可用作选择时的提示参数等
    card_num = 0,                    --字面意思，选几张牌，此技能无需选牌，所以为0
    target_num = 1,                  --字面意思，选几个人
    can_use = function(self, player) --can_use，发动条件，同can_trigger，设定条件
        return player:usedSkillTimes(jw_zhixing.name, Player.HistoryPhase) == 0 and
            #table.filter(Fk:currentRoom().alive_players, function(p)
                return p:getMark("@@jw_yijiao") == 0
            end) > 0              -- 这里添加一个条件，需要场上没有标记的角色大于0，才能发动该主动效果，table.filter查找所有符合条件的人或牌并返回表，所以需要加#，table.find查找一个
    end,
    card_filter = Util.FalseFunc, --无序选卡，直接falsefunc跳过
    target_filter = function(self, player, to_select, selected)
        return #selected == 0 and to_select ~= player and
            to_select:getMark("@@jw_yijiao") == 0 --这里过一下选择角色的条件，不为玩家，且没有异教标记
    end,
    on_use = function(self, room, effect)
        local target = effect.tos
            [1]                                                   --给target赋值，值为上述选择中的角色，[1]的意思是第一个角色，多选时可用[1]..[x]表示第几个角色
        room:setPlayerMark(target, "@@jw_yijiao", effect.from.id) --为该角色施加标记，标记内容为玩家自己的id，方便后续定位角色
    end,
})
jw_zhixing:addEffect("targetmod", {                   --添加一个额外效果，判定该角色的标记内值id，此id的玩家对其使用牌无距离限制
    bypass_distances = function(self, player, skill, card, to)
        return to:getMark("@@jw_yijiao") == player.id --to就是使用牌的目标，无额外条件，无需判定其他
    end
})
jw_zhixing:addEffect(fk.Damage, { --添加时机，造成伤害时
    anim_type = "drawcard",
    can_trigger = function(self, event, target, player, data)
        return target == player and player:hasSkill(jw_zhixing.name) and
            data.to:getMark("@@jw_yijiao") == player.id --同上
    end,
    on_cost = Util.TrueFunc,
    on_use = function(self, event, target, player, data)
        player.room:addPlayerMark(data.to, "@jw_zhuoshao") --施加标记，默认1
    end,
})
jw_zhixing:addEffect(fk.TurnEnd, {
    is_delay_effect = true,                                                                --此效果为延时效果，不视为发动技能
    can_trigger = function(self, event, target, player, data)
        return target == player and player:getMark("@jw_zhuoshao") > 0 and not player.dead --判定一下角色是否死亡，是否拥有标记
    end,
    on_cost = Util.TrueFunc,
    on_use = function(self, event, target, player, data)
        local room = player.room
        local n = player:getMark("@jw_zhuoshao")      --定义变量
        room:loseHp(player, n, jw_zhixing.name)       --失去体力
        room:setPlayerMark(player, "@jw_zhuoshao", 0) --效果发动完成后，记得清理标记
    end,
})
return jw_zhixing
